<?php

# -- DÉBUT NOTE DE LICENCE -------------------------------------
#
# Ce fichier fait partie de Clicpage.
#
# Copyright (c) 2010 Francois (www.clicpage.net)
# Distribué selon les termes de la licence GPL version 2.0.
# Consultez le fichier LICENCE ou
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- FIN NOTE DE LICENCE ---------------------------------------

class cpAdmin
{

	
	public static function adminMaintenance($core)
	{
		# Supprimer les utilisateurs temporaires qui sont inactifs depuis plus d'une semaine
		$core->con->execute('DELETE FROM '.$core->prefix.'utilisateurs '.
		"WHERE utilisateur_statut = -1 AND utilisateur_date_modification < '".dt::str('%Y-%m-%d %H:%M:%S', time() - 86400*7)."'");
	}
	
	
	public static function adminMenu($menu)
	{
		global $core;

		$menu[0][] = array(__('Accueil'), 'images/32/icone_accueil.png', 'accueil');
		$menu[0][] = array(__('Pages'), 'images/32/icone_pages.png', 'pages');
		$menu[0][] = array(__('Médias'), 'images/32/icone_medias.png', 'medias');
		$menu[0][] = array(__('Commentaires'), 'images/32/icone_commentaires.png', 'commentaires');
		
		if($core->auth->verifierPermission('utilisateurs')) {
			$menu[0][] = array(__('Utilisateurs'), 'images/32/icone_utilisateurs.png', 'utilisateurs');
		}
		
		$menu[0][] = array(__('Apparence'), 'images/32/icone_apparence.png', 'apparence');
		
		if($core->auth->verifierPermission('reglages')) {
			$menu[0][] = array(__('Réglages'), 'images/32/icone_reglages.png', 'reglages');
		}
		
		if($core->auth->verifierPermission('superadmin')) {
			$menu[1][] = array(__('Maintenance'), 'images/32/icone_maintenance.png', 'maintenance');
		}
	
	}
	
	
	public static function adminCSS($css)
	{

		switch($css):
		
			# --- Général ---
			case cpAdmin:
				return file_get_contents(CP_CHEMIN_ADMIN.'/design/styles.css');
			break;
			
			case tinymce:
				return file_get_contents(CP_CHEMIN_ADMIN.'/design/tinymce.css');
			break;
				
			case jqueryUI:
				return str_replace('url(images', 'url(js/jquery/ui/css/images', file_get_contents(CP_CHEMIN_ADMIN.'/js/jquery/ui/css/jquery-ui.css')).
				str_replace('url(images', 'url(js/jquery/colorpicker/images', file_get_contents(CP_CHEMIN_ADMIN.'/js/jquery/colorpicker/colorpicker.css'));
			break;
			
			# --- Modules d'administration ---			
			case accueil:
			case selecteurPage:
			case selecteurUtilisateur:
			case selecteurMedia:
			case commentaires:
			case medias:
			case modifierMedia:
			case modifierPage:
			case pages:
			case utilisateurs:
			case groupesUtilisateurs:
			case apparence:
			case filtresAntispam:	
			case CSS:	
			case maintenance:
				return file_get_contents(CP_CHEMIN_ADMIN.'/design/'.$css.'.css');
			break;
		
			# --- Gadgets ---
			case gadgets:
				return file_get_contents(CP_CHEMIN_ADMIN.'/design/gadgets.css').
				file_get_contents(CP_RACINE.'/inc/gadgets/menu/menu.css');
			break;			
				
			# --- Composants par défaut ---
			case modifierPage_recherche:	return file_get_contents(CP_RACINE.'/inc/generateurs/recherche/admin.css'); break;
			case modifierPage_liens:		return file_get_contents(CP_RACINE.'/inc/generateurs/liens/admin.css'); break;
			case modifierPage_tags:			return file_get_contents(CP_RACINE.'/inc/generateurs/tags/admin.css'); break;
			
		endswitch;
		
	}
	
	
	public static function adminJavascript($script)
	{

		switch($script):
		
			# --- Général ---
			
			case jquery:
				return file_get_contents(CP_CHEMIN_ADMIN.'/js/jquery/jquery.js').
					file_get_contents(CP_CHEMIN_ADMIN.'/js/jquery/indent.js');
				break;
			
			case jqueryUI:
				return file_get_contents(CP_CHEMIN_ADMIN.'/js/jquery/ui/jquery-ui.js').
					file_get_contents(CP_CHEMIN_ADMIN.'/js/jquery/colorpicker/colorpicker.js');
				break;
			
			case jqueryTinymce:
				return file_get_contents(CP_CHEMIN_ADMIN.'/js/tinymce/jquery.tinymce.js');
				break;
			
			case cpAdmin:
				return file_get_contents(CP_CHEMIN_ADMIN.'/js/clicpage.js');
				break;
			
			case cpToolbar:
				return file_get_contents(CP_CHEMIN_ADMIN.'/js/toolbar.js');
				break;
				
			case cpConditionsPage:
				return file_get_contents(CP_CHEMIN_ADMIN.'/js/conditionsPage.js');
				break;
		
				
			# --- Langue ---
			
			case lang:
				
				return
				# Général
				'cp.msg.erreur="'.__('Erreur:').' ";'.
				'cp.msg.erreur_formulaire="'.__('Le formulaire contient des erreurs.').'";'.
				'cp.msg.irreversible="'.__('Cette action est irréversible.').'";'.
				'cp.msg.aucune_selection="'.__('Aucune sélection').'";'.
				'cp.msg.supprimer="'.__('Supprimer').'";'.
				'cp.msg.deplacer="'.__('Déplacer').'";'.
				'cp.msg.annuler="'.__('Annuler').'";'.
				'cp.msg.trier="'.__('Trier par').'";'.
				'cp.msg.croissant="'.__('ordre croissant').'";'.
				'cp.msg.decroissant="'.__('ordre décroissant').'";'.
				'cp.msg.suite="'.__('Lire la suite...').'";'.
				'cp.msg.modificationsPerdues="'.__('Les modifications non enregistrées seront perdues.').'";'.
				# Accueil
				'cp.msg.upd_disponible="'.__('Clicpage %s est disponible.').'";'.
				'cp.msg.upd="'.__('Mettre à jour Clicpage').'";'.
				'cp.msg.upd_a_propos="'.__('À propos de cette version').'";'.
				# Pages
				'cp.msg.page="'.__('Page').'";'.
				'cp.msg.definir_accueil="'.__('Définir accueil').'";'.
				'cp.msg.annuler_accueil="'.__('Annuler accueil').'";'.
				'cp.msg.pages_supprimer_accueil="'.__('Vous ne pouvez pas supprimer la page d\'accueil d\'un dossier.').'";'.
				'cp.msg.pages_confirme_supprimer ="'.__('Êtes-vous certain de vouloir supprimer les pages et dossiers sélectionnés?').'";'.
				'cp.msg.pages_erreur_supprimer="'.__('Les pages/dossiers sélectionnés n\'ont pas été supprimés:').'";'.
				'cp.msg.pages_dossiers_seulement="'.__('Seules les pages sélectionnées seront publiées. Aucune action ne sera effectuée sur les dossiers sélectionnés.').'";'.
				'cp.msg.pages_erreur_deja_accueil="'.__('Vous avez sélectionné une page qui est déjà l\'accueil du dossier.').'";'.
				'cp.msg.pages_erreur_plusieurs_pages="'.__('Veuillez sélectionner une seule page.').'";'.
				'cp.msg.pages_deplacer_accueil="'.__('Vous ne pouvez pas déplacer la page d\'accueil d\'un dossier.').'";'.
				# Page
				'cp.msg.page_brouillon_enregistre="'.__('Le brouillon a été enregistré avec succès.').'";'.
				'cp.msg.page_brouillon="'.__('Ceci est un brouillon.').'";'.
				'cp.msg.page_brouillon_non_publie="'.__('La page n\'a pas encore été publiée.').'";'.
				'cp.msg.page_brouillon_revenir="'.__('Revenir à la version présentement en ligne.').'";'.
				'cp.msg.page_publiee="'.__('La page a été publiée avec succès.').'";'.
				# Page - tags
				'cp.msg.indiquer_tag="'.__('Vous devez indiquer un tag.').'";'.
				'cp.msg.tag_deja_associe="'.__('Le tag est déjà associé à la page.').'";'.
				# Champs de pages
				'cp.msg.titre="'.__('Titre').'";'.
				'cp.msg.url="'.__('URL').'";'.
				'cp.msg.dossier="'.__('Dossier').'";'.
				'cp.msg.date_creation="'.__('Date de création').'";'.
				'cp.msg.date_modification="'.__('Date de modification').'";'.
				# Conditions de page
				'cp.msg.conditions_ajouter="'.__('Ajouter une condition').'";'.
				'cp.msg.conditions_supprimer="'.__('Supprimer la condition').'";'.
				'cp.msg.conditions_et="'.__('et').'";'.
				'cp.msg.conditions_ou="'.__('ou').'";'.
				'cp.msg.conditions_page="'.__('la page').'";'.
				'cp.msg.conditions_titre="'.__('le titre').'";'.
				'cp.msg.conditions_tag="'.__('le tag').'";'.
				'cp.msg.conditions_url="'.__('l\'URL').'";'.
				'cp.msg.conditions_dossier="'.__('le dossier').'";'.
				'cp.msg.conditions_date_creation="'.__('la date de création').'";'.
				'cp.msg.conditions_date_modification="'.__('la date de modification').'";'.
				'cp.msg.conditions_auteur="'.__('l\'auteur').'";'.
				'cp.msg.conditions_langue="'.__('la langue').'";'.
				'cp.msg.conditions_est="'.__('est').'";'.
				'cp.msg.conditions_est_pas="'.__('n\'est pas').'";'.
				'cp.msg.conditions_est_apres="'.__('est après').'";'.
				'cp.msg.conditions_est_avant="'.__('est avant').'";'.
				'cp.msg.conditions_plus_jours="'.__('est il y a plus de (jours)').'";'.
				'cp.msg.conditions_moins_jours="'.__('est il y a moins de (jours)').'";'.
				'cp.msg.conditions_plus_heures="'.__('est il y a plus de (heures)').'";'.
				'cp.msg.conditions_moins_heures="'.__('est il y a moins de (heures)').'";'.
				# Sélecteur
				'cp.msg.selecteur_pas_selection="'.__('[pas de sélection]').'";'.
				'cp.msg.selecteur_choisir="'.__('Choisir...').'";'.
				# Médias
				'cp.msg.medias_confirme_supprimer ="'.__('Êtes-vous certain de vouloir supprimer les médias et dossiers sélectionnés?').'";'.
				#Commentaires
				'cp.msg.indesirable ="'.__('Indésirable').'";'.
				'cp.msg.attente ="'.__('En attente').'";'.
				'cp.msg.comm_confirme_supprimer ="'.__('Êtes-vous certain de vouloir supprimer ce commentaire?').'";'.
				'cp.msg.comms_confirme_supprimer ="'.__('Êtes-vous certain de vouloir supprimer les commentaires sélectionnés?').'";'.
				# Filtres antispam
				'cp.msg.antispam_retirer_mot ="'.__('Êtes-vous certain de vouloir retirer ce mot de la liste?').'";'.
				'cp.msg.antispam_retirer_ip ="'.__('Êtes-vous certain de vouloir retirer cette adresse IP de la liste?').'";'.
				'cp.msg.active="'.__('Activé').'";'.
				'cp.msg.desactive="'.__('Désactivé').'";'.
				# Apparence
				'cp.msg.votre_theme_defaut="'.__('Ceci est votre thème par défaut.').'";'.
				# Gadgets
				'cp.msg.gadgets_enregistres_succes="'.__('Gadgets enregistrés avec succès.').'";'.
				'cp.msg.gadgets_erreur="'.__('Impossible d\'enregistrer les gadgets. Vérifiez les champs en rouge.').'";'.
				'cp.msg.gadgets_affichage="'.__('Affichage').'";'.
				'cp.msg.gadgets_toutesPages="'.__('Sur toutes les pages').'";'.
				'cp.msg.gadgets_conditions="'.__('Selon des conditions...').'";'.
				'cp.msg.masquer_details="'.__('Masquer détails').'";'.
				'cp.msg.afficher_details="'.__('Afficher détails').'";'.
				'cp.msg.gadgets_confirme_supprimer="'.__('Êtes-vous certain de vouloir supprimer ce gadget?').'";'.
				# Utilisateurs
				'cp.msg.utilisateurs_confirme_supprimer ="'.__('Êtes-vous certain de vouloir supprimer les utilisateurs sélectionnés?').'";'.
				'cp.msg.utilisateurs_confirme_statut ="'.__('Êtes-vous certain de vouloir modifier le statut des utilisateurs sélectionnés?').'";'.
				'cp.msg.utilisateurs_erreur_supprimer ="'.__('Des utilisateurs n\'ont pas pu être supprimés:').'";'.
				'cp.msg.utilisateurs_erreur_modifier ="'.__('Des utilisateurs n\'ont pas pu être modifiés:').'";'.
				'cp.msg.groupes_confirme_supprimer ="'.__('Êtes-vous certain de vouloir supprimer les groupes sélectionnés?').'";'.
				'cp.msg.groupes_erreur ="'.__('Des groupes n\'ont pas pu être supprimés:').'";'.
				# Permissions
				'cp.msg.permission_commentaires="'.__('Modérer les commentaires.').'";'.
				# Gadget menu
				'cp.msg.gdgMenu_type_item="'.__('Type d\'item').'";'.
				'cp.msg.gdgMenu_lienInterne="'.__('Lien interne').'";'.
				'cp.msg.gdgMenu_lienExterne="'.__('Lien externe').'";'.
				'cp.msg.gdgMenu_liensConditions="'.__('Liens internes selon des conditions').'";'.
				'cp.msg.gdgMenu_confirme_supprimer_item="'.__('Êtes-vous certain de vouloir supprimer cet item du menu?').'";'.
				'cp.msg.gdgMenu_titreLien="'.__('Titre du lien').'";'.
				'cp.msg.gdgMenu_URLLien="'.__('URL du lien').'";'.
				'cp.msg.gdgMenu_inclurePages="'.__('Inclure les pages dont...').'";'
				;
				
				break;
				
				
			# --- Modules d'administration ---
		
			case accueil:
			case selecteurPage:
			case selecteurUtilisateur:	
			case selecteurMedia:
			case commentaires:
			case medias:
			case modifierDossier:
			case modifierMedia:
			case modifierPage:
			case modifierUtilisateur:
			case nouveauDossier:
			case nouvellePage:
			case pages:
			case reglages:
			case utilisateurs:	
			case groupesUtilisateurs:
			case modifierGroupeUtilisateurs:
			case apparence:
			case filtresAntispam:
			case CSS:
			case modifierUtilisateur:
			case ajouterMedia:
			case nouveauDossierMedia:
				return file_get_contents(CP_CHEMIN_ADMIN.'/js/'.$script.'.js');
				break;

			# -- Gadgets --
			case gadgets:
				return file_get_contents(CP_CHEMIN_ADMIN.'/js/gadgets.js').
					file_get_contents(CP_RACINE.'/inc/gadgets/menu/menu.js');
			break;
				
			# --- Composants par défaut ---
			case modifierPage_contenu:		return file_get_contents(CP_RACINE.'/inc/generateurs/contenu/admin.js'); break;
			case modifierPage_connexion:	return file_get_contents(CP_RACINE.'/inc/generateurs/connexion/admin.js'); break;
			case modifierPage_recherche:	return file_get_contents(CP_RACINE.'/inc/generateurs/recherche/admin.js'); break;
			case modifierPage_liens:		return file_get_contents(CP_RACINE.'/inc/generateurs/liens/admin.js'); break;
			case modifierPage_tags:			return file_get_contents(CP_RACINE.'/inc/generateurs/tags/admin.js'); break;	
			case antispamMotsInterdits:		return file_get_contents(CP_RACINE.'/inc/antispam/motsInterdits/antispam.js'); break;
			case antispamIPInterdits:		return file_get_contents(CP_RACINE.'/inc/antispam/IPInterdits/antispam.js'); break;
			case antispamIPLookup:			return file_get_contents(CP_RACINE.'/inc/antispam/IPLookup/antispam.js'); break;
			
		endswitch;
		
	}
	
	
	public static function adminPortlets($portlets)
	{
		$portlets[0]['apercu'] = array('cpAdmin', 'portlet_apercu');
		$portlets[1]['version'] = array('cpAdmin', 'portlet_version');
		$portlets[1]['actus-clicpage'] = array('cpAdmin', 'portlet_actusclicpage');
	}
	
	
	public static function portlet_apercu($pos)
	{
		
		global $core;
		
		$core->chargerThemes();
		$themeIdentifiant = $core->site->getPropriete('site_theme');
			
		$nbPages = $core->site->getPages(array(), CP_GET_COMPTEUR)->f(0);
		$nbPagesBrouillon = $core->site->getPages(array('page_modifiee' => CP_PAGEMODIFIEE_OUI), CP_GET_COMPTEUR)->f(0);
		$nbMedias = $core->site->getMedias(array(), CP_GET_COMPTEUR)->f(0);
		$nbCommentaires = $core->site->getCommentaires(array(), CP_GET_COMPTEUR)->f(0);
		$nbCommentairesAttente = $core->site->getCommentaires(array('commentaire_statut' => CP_COMMENTAIRE_ATTENTE), CP_GET_COMPTEUR)->f(0);
		$nbCommentairesSpam = $core->site->getCommentaires(array('commentaire_statut' => CP_COMMENTAIRE_SPAM), CP_GET_COMPTEUR)->f(0);
		$themeNom = $core->themes[$themeIdentifiant]['nom'];
		$nbGadgets = $core->site->getGadgets(array('theme_id' => $themeIdentifiant), CP_GET_COMPTEUR)->f(0);
		
		return 
		'<div class="accueil-portlet">'.
			form::hidden(array('portlet_id', ''), 'apercu').
			'<h3>'.__('Votre site').'</h3>'.
			'<div class="accueil-portlet-contenu">'.
				'<div class="site-apercu-icones">'.
					'<p class="site-apercu-item">'.
						'<a href="index.php?module=pages" class="site-apercu-pages">'.$nbPages.' '.($nbPages > 1 ? __('pages') : __('page')).'</a> '.
						'<a href="index.php?module=pages&statut=brouillon&cat_id=ignorer" class="site-apercu-details">'.$nbPagesBrouillon.' '.($nbPagesBrouillon > 1 ? __('brouillons') : __('brouillon')).'</a>'.
					'</p>'.
					'<p class="site-apercu-item">'.
						'<a href="index.php?module=medias" class="site-apercu-medias">'.$nbMedias.' '.($nbMedias > 1 ? __('médias') : __('média')).'</a>'.
					'</p>'.
					'<p class="site-apercu-item">'.
						'<a href="index.php?module=commentaires" class="site-apercu-commentaires">'.$nbCommentaires.' '.($nbCommentaires > 1 ? __('commentaires') : __('commentaire')).'</a> '.
						'<a href="index.php?module=commentaires&commentaire_statut=2" class="site-apercu-details">'.$nbCommentairesAttente.' '.__('en attente').'</a> '.
						'<a href="index.php?module=commentaires&commentaire_statut=0" class="site-apercu-details">'.$nbCommentairesSpam.' '.($nbCommentairesSpam > 1 ? __('indésirables') : __('indésirable')).'</a>'.
					'</p>'.
				'</div>'.
				'<p class="site-apercu-theme">'.
					sprintf(__('Le thème par défaut actuel est %s.'), '"<a href="index.php?module=apparence">'.$themeNom.'</a>"').
					' (<a href="index.php?module=gadgets&theme='.rawurlencode($themeIdentifiant).'">'.$nbGadgets.' '.($nbGadgets > 1 ? __('gadgets') : __('gadget')).'</a>)'.
				'</p>'.
			'</div>'.
		'</div>';
		
	}
	
	
	public static function portlet_version($pos)
	{
		return '<div class="accueil-portlet-version">'.form::hidden(array('portlet_id', ''), 'version').'</div>';
	}
	
	
	public static function portlet_actusclicpage($pos)
	{
		return 
		'<div id="portlet-actualites" class="accueil-portlet" style="display:none;">'.
			form::hidden(array('portlet_id', ''), 'actus-clicpage').
			'<h3>'.__('Actualités Clicpage').'</h3>'.
			'<div class="accueil-portlet-contenu" id="actualites-conteneur">&nbsp;</div>'.
		'</div>';
	}

	
}

?>